#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>

using namespace std;

//int main()
//{
//    int nums[3];
//    int min = 0, mid = 0, max = 0;
//    cin >> min >> mid >> max;
//    if (min > mid) swap(min, mid);
//    if (min > max) swap(min, max);
//    if (mid > max) swap(mid, max);
//    nums[0] = min;
//    nums[1] = mid;
//    nums[2] = max;
//    char tmp[3];
//    for (int i = 0; i < 3; i++)
//    {
//        cin >> tmp[i];
//        cout << nums[tmp[i] - 'A'] << " ";
//    }
//
//    return 0;
//}

//int main()
//{
//    int f = 0;
//    cin >> f;
//
//    double c = 5 * (f - 32) / 9.0;
//    printf("%.5f", c);
//
//    return 0;
//}

//#include <vector>
//
//int main()
//{
//    int n = 0;
//    cin >> n;
//    vector<int> v(n, 0);
//    for (int& e : v) cin >> e;
//
//    int left = 0;
//    int right = n - 1;
//    while (left < right)
//        swap(v[left++], v[right--]);
//
//    for (auto& e : v) cout << e << " ";
//
//    return 0;
//}

//#include <iostream>
//
//using namespace std;
//
//int Month[13] = { 0, 31, 28, 31,30,31,30,31,31,30,31,30,31 };
//
//int GetMonthDay(int year, int month)
//{
//    if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
//        return 29;
//
//    return Month[month];
//}
//
//int main()
//{
//    int year, month;
//    cin >> year >> month;
//    int day = GetMonthDay(year, month);
//    cout << day;
//
//    return 0;
//}
//#include <iostream>
//#include <string>
//#include <map>
//#include <vector>
//
//using namespace std;
//map<string, pair<int, int>> countmap;
//
//bool is_legal(string ad)
//{
//    size_t t_pos = 0;
//    int n = ad.size();
//    if (n < 9 || n>21) return false;
//    int count1 = 0;
//    int count2 = 0;
//    for (auto& c : ad)
//    {
//        if (c == '.') count1++;
//        if (c == ':') count2++;
//    }
//    if (count1 != 3 || count2 != 1) return false;
//    vector<string> v;
//    int prev = 0;
//    size_t pos = ad.find('.');
//    while (pos != string::npos)
//    {
//        string tmp(ad, prev, pos - prev);
//        prev = pos + 1;
//        pos = ad.find('.', pos + 1);
//        if (pos != string::npos) t_pos = pos;
//        v.push_back(tmp);
//    }
//    string tmp(ad, prev, pos - prev);
//    v.push_back(tmp);
//
//    string end = v.back();
//    v.pop_back();
//    size_t m_pos = ad.find(":");
//    if (m_pos < t_pos) return false;
//    pos = end.find(':');
//    string d(end, 0, pos);
//    string e(end, pos + 1);
//    if (e == "") return false;
//    v.push_back(d);
//
//    for (auto& s : v)
//    {
//        if (s == "") return false;
//        if (s.size() != 1 && s[0] == '0') return false;
//        if (stoi(s) < 0 || stoi(s) > 255) return false;
//    }
//    if (e.size() != 1 && e[0] == '0') return false;
//    if (stoll(e) < 0 || stoll(e) > 65535) return false;
//
//    return true;
//}
//
//void Jduge(string op, string ad, int count)
//{
//    if (op == "Server")
//    {
//        if (is_legal(ad))
//        {
//            if (countmap[ad].first == 0)
//            {
//                (countmap[ad].first)++;
//                countmap[ad].second = count;
//                cout << "OK" << endl;
//            }
//            else
//            {
//                cout << "FAIL" << endl;
//            }
//        }
//        else cout << "ERR" << endl;
//    }
//    else
//    {
//        if (is_legal(ad))
//        {
//            if (countmap[ad].first != 0) cout << countmap[ad].second << endl;
//            else cout << "FAIL" << endl;
//        }
//        else cout << "ERR" << endl;
//    }
//}
//
//int main()
//{
//    int n = 0;
//    int count = 0;
//    cin >> n;
//    while (n--)
//    {
//        string op, ad;
//        cin >> op >> ad;
//
//        Jduge(op, ad, ++count);
//    }
//
//    return 0;
//}
#include <iostream>

using namespace std;

int Innum(string s)
{
    int count = 0;
    int hash[26] = { 0 };

    for (auto& c : s) hash[c - 'a'] = 1;
    for (int i = 0; i < 26; i++) if (hash[i]) count++;

    return count;
}

int Getnum(string s, int n)
{
    int ret = 0;
    int pos = 0;
    int hash[26] = {0};
    for (pos = 0; pos < n; pos++)
    {
        if (hash[s[pos] - 'a']) break;
        if (hash[s[pos]-'a']==0) hash[s[pos] - 'a']++;
    }
    string s1(s, 0, pos+1);
    string s2(s, pos+1);

    int left = Innum(s1);
    int right = Innum(s2);

    ret = max(ret, left + right);

    return ret;
}

int main()
{
    int n = 0;
    cin >> n;
    while (n--)
    {
        int sz = 0;
        cin >> sz;
        string s;
        cin >> s;

        cout << Getnum(s, sz) << endl;
    }

    return 0;
}